List Partitioning হলো একটি বড় তালিকাকে (list) ছোট ছোট তালিকায় বিভক্ত করার একটি কৌশল। অ্যাপাচি কমন্স কালেকশনস (Apache Commons Collections) এই কাজটি সহজে করার জন্য ListUtils.partition() মেথড সরবরাহ করে। এটি বিশেষত বড় ডেটাসেট পরিচালনা করার সময় কার্যকর, যেখানে তালিকার উপাদানগুলো ছোট ছোট ভাগে বিভক্ত করে প্রক্রিয়া করা সহজ হয়।
List Partitioning এর মাধ্যমে একটি মূল তালিকাকে নির্দিষ্ট আকারের (fixed size) ভাগে বিভক্ত করা হয়। উদাহরণস্বরূপ:
মূল তালিকা: [1, 2, 3, 4, 5, 6, 7]
প্রতিটি ভাগে সর্বাধিক ৩টি আইটেম রাখলে আউটপুট হবে: [[1, 2, 3], [4, 5, 6], [7]]
import org.apache.commons.collections4.ListUtils;
import java.util.ArrayList;
import java.util.List;
public class ListPartitionExample {
public static void main(String[] args) {
// বড় একটি তালিকা তৈরি
List<Integer> numbers = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
numbers.add(i);
}
// তালিকাকে ৩-এর ভাগে ভাগ করা
List<List<Integer>> partitionedLists = ListUtils.partition(numbers, 3);
// প্রতিটি ভাগ প্রিন্ট করা
for (List<Integer> partition : partitionedLists) {
System.out.println(partition);
}
}
}
আউটপুট:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[10]
List Partitioning বড় ডেটাসেট প্রক্রিয়াকরণের ক্ষেত্রে অত্যন্ত কার্যকর। যেমন:
public void processInBatches(List<String> records) {
int batchSize = 100; // প্রতিটি ব্যাচে ১০০ রেকর্ড
List<List<String>> batches = ListUtils.partition(records, batchSize);
for (List<String> batch : batches) {
// প্রতিটি ব্যাচ প্রসেস করা
sendToApi(batch);
}
}
private void sendToApi(List<String> batch) {
// API-তে ব্যাচ প্রেরণ করার লজিক
System.out.println("Sending batch: " + batch);
}
তালিকাকে ভাগ করে বিভিন্ন থ্রেডে প্রক্রিয়াকরণের জন্য List Partitioning ব্যবহার করা যায়।
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ParallelProcessingExample {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
for (int i = 1; i <= 100; i++) {
numbers.add(i);
}
List<List<Integer>> partitions = ListUtils.partition(numbers, 10);
ExecutorService executor = Executors.newFixedThreadPool(5);
for (List<Integer> partition : partitions) {
executor.submit(() -> {
System.out.println("Processing partition: " + partition);
});
}
executor.shutdown();
}
}
null
নয় এবং ফিক্সড সাইজ ধনাত্মক সংখ্যা।List Partitioning বড় তালিকা পরিচালনার একটি কার্যকর উপায়, যা অ্যাপাচি কমন্স কালেকশনসের ListUtils.partition() মেথড ব্যবহার করে সহজেই করা যায়। এটি ডেটাসেট পরিচালনা, প্যারালাল প্রসেসিং, এবং API কলের মতো বিভিন্ন ক্ষেত্রে প্রয়োগ করা হয়।
common.read_more